A number of device management products exist such as IBM Endpoint Manager, Microsoft Intune, HP Openview, IGEL Device Manager, etc. One function of these device management products is updating the managed devices. In each of these products, the update functionality is configured to identify whenever an update is available to any component (e.g, OS, drivers, BIOS, applications, etc.) on the managed device. When an update is available, the device management product will automatically update or offer the update to the managed device. Similar update functionality is provided by application stores on mobile operating systems (e.g., the Google Play Store or Apple App Store). In particular, these application stores will either automatically update every installed application or prompt the user to authorize the update.
In short, the update functionality that is currently available will cause all components to be updated regardless of whether a component is used. For some devices, such as those with limited storage resources, updating all components can cause various performance issues. For example, due to the risk that an update may cause errors, it is typical to store sufficient information to allow the update to be rolled back. When a device has limited storage, this rollback information can consume excessive amounts of storage.